3/10/2022

Preparing data for model: Natal origins

Natal origins (based on release site)

Candidates for inclusion

Methow River

  • Lower Methow River (LMR) site came online in March 2009; run years 09/10 and onwards have 2,202 hatchery fish and 358 wild fish

Klickitat River

  • Lyle Falls Fishway (LFF) site came online August 2011; run years 12/13 and onwards have 2,197 hatchery fish

Asotin Creek

  • Three arrays have been active since 2009, but these are farther from the mouth. The one at the creek mouth has been active since August 2011. Run years 12/13 and onwards have 415 wild fish

Asotin Creek

- ACM array active since August 2011; ACB, CCA, and AFC active since August 2009

Okanogan River

  • Various arrays have been active since 2009; the array closest to the river mouth (OKL, Lower Okanogan Instream Array) has only been active since October 2013
    • What to do when detection capabilities have been changing based on number and location of active arrays?
    • Keeping only fish starting in run year 14/15 would leave you with only 7 years of data (not enough based on Shelby’s cutoff of 8 years), but 522 hatchery fish

Wind River

- TRC (Trout Creek) array has been active since September 2007; WRA (Wind River RKM 30) has been active since October 2012. Starting in run year 13/14, there are 474 wild fish

Preparing data for model: Covariates

Preparing covariate data

  1. Categorical covariates that describe differences between individual fish (e.g., acclimation, run year, natal origin)
  2. Continuous covariates that describe the conditions experienced by fish in each state (e.g., temperature, spill):

Acclimation

Sometimes run year and acclimation aren’t confounded

Sometimes acclimation practices clearly change over time

Temperature

Shelby’s approach: Focus only on temperatures around natal tributary

  1. Predict time when individuals are approaching natal tributary: “For each tributary, I found the median number of days it took overshooting steelhead to move from the lower dam prior to their home tributary to the overshoot dam… Travel times varied throughout the year, therefore median travel times were estimated on a month-by-month basis.”
  2. Get mean temperature from a week-long window, centered around median travel time: “To account for variation in travel time, I created a week-long window, centered around the median monthly travel time, during which each steelhead was likely arrive near their home tributary. I found the average water temperature in the outflow of the upstream dam within the one-week window.”

Temperature - our approach

  • Need more detail in our temperature data - Shelby was just looking at overshoot (binary) and so just needed one temperature value. We want temperature as a covariate for movement probabilities in each state
  • Similar approach to Shelby:
    • Tailrace temperatures, one-week window around median travel time
    • Median travel calculated for each each natal origin (expect fish to move different speeds depending on where they’re headed) and each month
      • Median travel allows us to get temperature for all fish (incl. those that don’t ascend the upstream dam), but also means that for those that do ascend the upstream dam, we’re less accurate

Temperature - our approach

  • In each state, we’d use the tailrace temperature from the upstream dam, in this case MCN:

Temperature: allowing for bidirectionality

  • If a fish is moving downstream, the median travel time would instead be the median time between falling back over the upstream dam and falling back over the downstream dam
    • Problem: When falling back, individuals rarely fall back over the dam downstream of their natal tributary. So should we take median time between upstream dam and time at tributary?
    • Example: Deschutes R. fish often overshot MCN, but once they fell back over MCN, they never went all the way back to Bonneville - no way of calculating that median travel time using the between two dams approach

Temperature: further issues

  • Implicit states - for example, if we see an individual ascend a dam twice, we know it had to have been in the downstream state at some point, but we don’t know when
    • Possible solutions: subtract median travel time (from downstream dam to upstream dam) from time of second dam ascension, or take tailrace temperature at time of second dam ascension
    • One issue is that repeat ascensions (therefore implicit fallback) often occur close together in time (e.g., less than 24 hours apart)
  • The MCN-PRA-ICH state - Two tailrace temperatures, one for ICH and one for PRA, and some individuals move directly between PRA and ICH

Flow and spill - Shelby

  • Only used flow and spill for regressions with rate of fallback, and only rates at the overshoot dam
  • Flow by average outflow in March
  • Spill by proportion of days with any amount of spill in January, February, and March.
    • Proportion of days with spill chosen as variable because 1) little variation in quantity of spill and 2) previous results indicate that it’s the presence of spill, not quantity, that’s necessary to route kelts away from turbines

Flow and spill - our approach

  • Issues with correlation between spill and flow?
  • Both the probability of ascending a dam and falling back over one could be affected by both flow and spill
  • Calculate amount of flow at upstream and downstream dam at each state (using same window approach as for temperature)
  • Presence of spill at upstream and downstream dam at each state - number of days in window around median travel time? Or use the same winter months approach?

Issue: how to enforce sum to 1 constraint with covariates?

If you didn’t have a sum to 1 constraint

# Fish state is a vector of every state each fish was in
# Example for probability of overshooting McNary Dam
for (i in 1:length(fish_state)){ 
  logit(o_mcn[i]) <- b0 + bOrigin[natal_origin[i]] + # origin (categorical)
    bYear[run_year[i]] + # run year (categorical)
    bTemp * temp[i] + # temperature (continuous)
    bFlow * flow[i] + # flow (continuous)
    bSpill * spill[i] # spill (continuous)
}

Current sum to 1 constraint code for movements in BON to MCN state

### 2: BON to MCN
# l_bon_mcn <- 1 - (o_mcn + s_bon_mcn + h_bon_mcn + f_bon)
a2 ~ dnorm(0, 0.01)
b2 ~ dnorm(0, 0.01)
c2 ~ dnorm(0, 0.01)
d2 ~ dnorm(0, 0.01)

o_mcn <- exp(a2)/(1 + exp(a2) + exp(b2) + exp(c2) + exp(d2))
s_bon_mcn <- exp(b2)/(1 + exp(a2) + exp(b2) + exp(c2) + exp(d2))
h_bon_mcn <- exp(c2)/(1 + exp(a2) + exp(b2) + exp(c2) + exp(d2))
f_bon <- exp(d2)/(1 + exp(a2) + exp(b2) + exp(c2) + exp(d2))
l_bon_mcn <- 1/(1 + exp(a2) + exp(b2) + exp(c2) + exp(d2))

Other questions

  • With this current model setup, are we able to determine if certain covariates affect certain populations but not others? I.e., are we getting a “global” effect of temperature on all populations, or are we able to see if temperature affects different populations differently (interacting effects)?
  • Is non-stationarity in the relationships between covariates and movement probabilities of interest? Do we want to incorporate autoregressive processes to describe how the effects of certain covariates on fish are changing over time?